Computer-assisted design, generally, refers to the activities of an engineer or other design professional in designing a system, product, or procedure using software and/or special-purpose hardware intended to facilitate the design process. Beginning with early Fortran-based computer-aided design (CAD) systems and continuing with newer ones incorporating object-oriented programming methods, CAD systems have significantly enhanced the efficiency of engineers and other design professionals.
A feature common to many such systems is the familiar Graphical User Interface (GUI), which allows a designer to succinctly represent complex features of a product or process visually. With a GUI, a designer can develop a product or process by direct manipulation of objects displayed on a computer screen, typically using a drag-and drop interface with which the designer “grabs” a predefined object or icon, “drags” the object across the computer screen, and “drops” it onto a target. A GUI having such a drag-and-drop interface allows the designer to construct a product or process while watching it evolve from conception to completion.
One of the many areas in which these techniques have been successfully employed is the design and construction of structured flow diagrams. Structured flow diagrams can be used to provide schematic illustrations of various processes and applications. One such application is a voice application, for which a structured flow diagram provides a graphical representation of expected speech responses for the particular voice application. More particularly, the structured flow diagram can provide a visual representation of the grammar employed by a particular voice application.
With structured flow diagrams, generally, the visual presentation typically comprises objects, usually represented by one or more icons, each of which are positioned and/or connected according to strict rules dictated by the particular process or application that is visually represented. A designer typically composes or modifies a structured flow diagram using a visual interface that allows the designer to “drag-and-drop” objects into desired positions within the diagram.
In a conventional system, the effect of dropping an object into a structured flow diagram is typically not realized or visually presented until the drop operation has been completed. Accordingly, if the result of the drop operation is not what the designer intended, or if the drop operation produces unanticipated changes in other portions of the structured flow diagram, the designer must “undo” the drop operation and then repeat the process until achieving a desired result. Moreover, a drag-and-drop operation may have multiple possible drop targets, each of which would have a different effect on the diagram.
To date, however, there is no effective and efficient mechanism by which a designer is able to “preview” modifications to the structured flow diagram prior to deciding whether to incorporate the modifications into the diagram. More specifically, conventional systems lack an effective and efficient mechanism with which a designer can see the effects of alternative drops by “hovering” over various drop targets. There is similarly lacking an effective and efficient mechanism by which the designer, by moving the object over different drop targets, can preview the alternative constructs that would result from a drop operation.